<?php

function getFiles($file='') {
	global $objDB;
	$aFiles = array();

	$nome = "ovf_agenda";
	$aFiles[$nome]["descr"] = "Agenda";
	$aFiles[$nome]["campiFix"]["id_agenda"] = array("int(11)","","AUTO_INCREMENT","");
	$aFiles[$nome]["campiFix"]["data_agenda"] = array("date","","","Data");
	$aFiles[$nome]["campiFix"]["tipo_agenda"] = array("varchar(1)","I","","Impegno/Memo");
	$aFiles[$nome]["campiFix"]["id_tipo_imp"] = array("int(11)","","","id tipo impegno");
   $aFiles[$nome]["campiFix"]["id_tipo_cont"] = array("int(11)","","","id tipo contatto");
   $aFiles[$nome]["campiFix"]["data_memo_iniz"] = array("date","","","Data iniz. memo");
	$aFiles[$nome]["campiFix"]["giorno"] = array("int(11))","","","Giorno");
	$aFiles[$nome]["campiFix"]["mese"] = array("int(11))","","","Mese");
	$aFiles[$nome]["campiFix"]["anno"] = array("int(11))","","","Anno");
	$aFiles[$nome]["campiFix"]["ora"] = array("int(11))","","","Ora");
	$aFiles[$nome]["campiFix"]["minuti"] = array("int(11))","","","Minuti");
	$aFiles[$nome]["campiFix"]["durata_minuti"] = array("int(11))","","","Durata (minuti)");
	$aFiles[$nome]["campiFix"]["oggetto"] = array("varchar(255)","I","","Oggetto");
	$aFiles[$nome]["campiFix"]["dove"] = array("varchar(255)","I","","Dove");
	$aFiles[$nome]["campiFix"]["nota"] = array("text","","","Nota");
	$aFiles[$nome]["campiFix"]["id_utente_ins"] = array("int(11)","","","id utente ins.");
	$aFiles[$nome]["campiFix"]["pub_occ_pri"] = array("varchar(3)","pub","","pub/occ/pri");
	$aFiles[$nome]["campiFix"]["id_anag"] = array("int(11)","","","Azienda");
	$aFiles[$nome]["primary"] = "id_agenda";
	$aFiles[$nome]["index"]["data_agenda"] = "data_agenda";

	$nome = "ovf_anagrafiche";
	$aFiles[$nome]["descr"] = "Anagrafiche";
	$aFiles[$nome]["campiFix"]["id_anag"] = array("int(11)","","AUTO_INCREMENT","");
	$aFiles[$nome]["campiFix"]["cod_anag"] = array("varchar(32)","","","Codice univoco");
	$aFiles[$nome]["campiFix"]["intestaz1"] = array("varchar(80)","","","Prima parte intestazione");
	$aFiles[$nome]["primary"] = "id_anag";
	$aFiles[$nome]["index"]["cod_anag"] = "cod_anag";
	
	$nome = "ovf_campagne";
	$aFiles[$nome]["descr"] = "Campagne";
	$aFiles[$nome]["campiFix"]["id_camp"] = array("int(11)","","AUTO_INCREMENT","");
	$aFiles[$nome]["campiFix"]["cod_camp"] = array("varchar(32)","","","codice univoco");
	$aFiles[$nome]["campiFix"]["descr"] = array("varchar(80)","","","");
	$aFiles[$nome]["campiFix"]["data_iniz"] = array("date","2000-01-01","","data inizio");
	$aFiles[$nome]["campiFix"]["data_fine"] = array("date","2030-12-31","","data fine");
	$aFiles[$nome]["primary"] = "id_camp";
	$aFiles[$nome]["index"]["cod_camp"] = "cod_camp";
		
	$nome = "ovf_anag_referent";
	$aFiles[$nome]["descr"] = "Referenti";
	$aFiles[$nome]["campiFix"]["id_referent"] = array("int(11)","","AUTO_INCREMENT","");
	$aFiles[$nome]["campiFix"]["id_anag"] = array("int(11)","","","");
	$aFiles[$nome]["campiFix"]["cognome"] = array("varchar(80)","","","cognome");
	$aFiles[$nome]["campiFix"]["nome"] = array("varchar(80)","","","nome");
	$aFiles[$nome]["primary"] = "id_referent";
	$aFiles[$nome]["index"]["id_anag"] = "id_anag";
		
	$sSql = "SELECT * FROM ovf_anag_sez WHERE tipo_sez <> 'ext'";
	$objDB->query($sSql,"selAnagSezGF");
	while($acX = $objDB->fetch("selAnagSezGF")) {
		$codSez = $acX['cod_sez'];
		$nome = 'ovf_sez_'.$codSez;
		if (isset($aFiles[$nome])) {
				continue;
		}
		$aFiles[$nome]["descr"] = $acX['descr'];
		$aFiles[$nome]["campiFix"]["id_".$codSez] = array("int(11)","","AUTO_INCREMENT","");
		$aFiles[$nome]["campiFix"]["id_anag"] = array("int(11)","","","");
		$aFiles[$nome]["primary"] = "id_".$codSez;
		$aFiles[$nome]["index"]["id_anag"] = "id_anag";
	}
	if ($file=='')	return $aFiles;
	if (isset($aFiles[$file])) return $aFiles[$file];
	return false;
}
//*////////////////////////////////////////
function getDefCampi($file) {
	global $objDB;
	$aFileX = getFiles($file);
	if ($aFileX===false) {
		ovfErr("file def. '$file' not found");
	}
	$sSql = "SHOW FULL COLUMNS IN ".$file;
	$objDB->query($sSql,"showCol",false);
	if ($objDB->errno("showCol") == 1146) {
		//se la tabella non esiste la crea
		$sSql = "CREATE TABLE $file (";
		foreach($aFileX['campiFix'] as $campo => $aCampoDef ) {
			$sSql .= $campo." ".$aCampoDef[0];
			if ($aCampoDef[1]!='' && empty($aCampoDef[2])) {
				if (in_array(substr($aCampoDef[0],0,3),array('int','dec'))) {
					$sSql .= " DEFAULT ".(float)($aCampoDef[1]);
				} else {
					$sSql .= " DEFAULT '".addslashes($aCampoDef[1])."'";
				}
			}
			$sSql .= " ".addslashes($aCampoDef[2]);
			if (!empty($aCampoDef[3])) {
				$sSql .= " COMMENT '".addslashes($aCampoDef[3])."'";
			}
			$sSql .= ", ";
		}
		$sSql .= " PRIMARY KEY (".$aFileX['primary']."), ";
		foreach($aFileX['index'] as $index => $indDef ) {
			$sSql .= "KEY $index ($indDef), ";
		}
		$sSql[strlen($sSql)-2] = ")";
		$sSql .= " ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ";
		$sSql .= " COMMENT='".addslashes($aFiles[$file]['descr'])."'";
		//dbg_($sSql);
		$objDB->query($sSql,"showCol");
		$sSql = "SHOW FULL COLUMNS IN ".$file;
		$objDB->query($sSql,"showCol",true);
	}
	$aDefCampi = array();
	while($acX = $objDB->fetch("showCol")) {
		$aDefCampi[$acX['Field']] = array($acX['Type'],$acX['Default'],$acX['Extra'],$acX['Comment']
			,(isset($aCampiFix[$acX['Field']])));
	}
   //dbg_($aDefCampi);
   foreach($aFileX['campiFix'] as $campo => $aCampoDef ) {
      if (!key_exists($campo,$aDefCampi)) {
         dbg_('manca campo:'.$campo.' - '.print_r($aCampoDef,1));
         $sSql = "ALTER TABLE $file ADD COLUMN $campo ".$aCampoDef[0]." NOT NULL";
         $objDB->query($sSql,"showCol");
      }
   }
	return $aDefCampi;
}
